home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / sharewar / slunec / app / httrack.exe / {app} / src_win / WinHTTrack / about.cpp next >
C/C++ Source or Header  |  2001-12-09  |  7KB  |  301 lines

  1. // about.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "Shell.h"
  6. #include "about.h"
  7. //#include "about_sh.h"
  8.  
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14.  
  15. extern HICON httrack_icon;
  16. extern CString _HTTRACK_VERSION;
  17.  
  18. extern int LANG_T(int);
  19. // Helper
  20. extern LaunchHelp* HtsHelper;
  21.  
  22. /////////////////////////////////////////////////////////////////////////////
  23. // Cabout dialog
  24.  
  25.  
  26. Cabout::Cabout(CWnd* pParent /*=NULL*/)
  27.     : CDialog(Cabout::IDD, pParent)
  28. {
  29.     //{{AFX_DATA_INIT(Cabout)
  30.     m_infover = _T("");
  31.     m_lang = -1;
  32.     //}}AFX_DATA_INIT
  33. }
  34.  
  35.  
  36. void Cabout::DoDataExchange(CDataExchange* pDX)
  37. {
  38.     CDialog::DoDataExchange(pDX);
  39.     //{{AFX_DATA_MAP(Cabout)
  40.     DDX_Control(pDX, IDC_SPLASH, m_splash);
  41.     DDX_Control(pDX, IDC_lang, m_ctl_lang);
  42.     DDX_Text(pDX, IDC_INFOVER, m_infover);
  43.     DDX_CBIndex(pDX, IDC_lang, m_lang);
  44.     //}}AFX_DATA_MAP
  45. }
  46.  
  47.  
  48. BEGIN_MESSAGE_MAP(Cabout, CDialog)
  49.     //{{AFX_MSG_MAP(Cabout)
  50.     ON_CBN_SELCHANGE(IDC_lang, OnSelchangelang)
  51.     ON_WM_HELPINFO()
  52.     ON_WM_LBUTTONDOWN()
  53.     ON_WM_MOUSEMOVE()
  54.     //}}AFX_MSG_MAP
  55.   ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
  56.   ON_COMMAND(ID_HELP_FINDER,OnHelpInfo2)
  57.   ON_COMMAND(ID_HELP,OnHelpInfo2)
  58.     ON_COMMAND(ID_DEFAULT_HELP,OnHelpInfo2)
  59. END_MESSAGE_MAP()
  60.  
  61. /////////////////////////////////////////////////////////////////////////////
  62. // Cabout message handlers
  63.  
  64. BOOL Cabout::OnInitDialog() 
  65. {
  66.   //m_lang=LANG_T(-1);    // langue?
  67.   CDialog::OnInitDialog();
  68.  
  69.   WINDOWPLACEMENT wp;
  70.   m_splash.GetWindowPlacement(&wp);
  71.   wp.rcNormalPosition.right=wp.rcNormalPosition.left+300+1;
  72.   wp.rcNormalPosition.bottom=wp.rcNormalPosition.top+69+1; 
  73.   m_splash.SetWindowPlacement(&wp);
  74.  
  75.   m_ctl_lang.ResetContent();
  76.   {
  77.     char lang_str[1024];
  78.     //int old_lang=LANG_T(-1);
  79.     int i=0;
  80.     int curr_lng=LANG_T(-1);
  81.     QLANG_T(0);
  82.     strcpy(lang_str,"LANGUAGE_NAME");
  83.     LANG_LOAD(lang_str);    // 0 english 1 franτais..
  84.     while(strlen(lang_str)) {
  85.       m_ctl_lang.AddString(lang_str);
  86.       i++;
  87.       QLANG_T(i);
  88.       strcpy(lang_str,"LANGUAGE_NAME");
  89.       LANG_LOAD(lang_str);    // 0 english 1 franτais..
  90.     }
  91.     QLANG_T(curr_lng);
  92.     //LANG_T(min(old_lang,i-1));
  93.   }
  94.  
  95.   /* sel */
  96.   int i;
  97.   int max=m_ctl_lang.GetCount();
  98.   m_ctl_lang.SetCurSel(-1);
  99.   for(i=0;i<max;i++) {
  100.     CString st;
  101.     m_ctl_lang.GetLBText(i,st);
  102.     if (strcmp(st,LANGUAGE_NAME)==0) {
  103.       m_ctl_lang.SetCurSel(i);
  104.     }
  105.   }
  106.   
  107.   EnableToolTips(true);     // TOOL TIPS
  108.   setlang();
  109.   SetIcon(httrack_icon,false);
  110.   SetIcon(httrack_icon,true);  
  111.  
  112.   SetForegroundWindow();   // yop en premier plan!
  113.  
  114.     return TRUE;  // return TRUE unless you set the focus to a control
  115.                   // EXCEPTION: OCX Property Pages should return FALSE
  116. }
  117.  
  118. void Cabout::setlang() {
  119.   CString info = "WinHTTrack Website Copier ";
  120.   info+= _HTTRACK_VERSION;
  121.   info+=LANG(LANG_K1);
  122.   info+="\r\n\r\n";
  123.   info+=LANG_K3;
  124.   info+=" :\r\n";
  125.   info+=HTTRACK_WEB;
  126.   SetDlgItemText(IDC_INFOVER,info);
  127.   //
  128.   SetWindowText(LANG_K2);
  129.   //SetDlgItemText(IDC_visit,LANG_K3);
  130. }
  131.  
  132. void Cabout::OnOK() 
  133. {
  134.   /*
  135.   DWORD a;
  136.   a=m_ctl_hot.GetHotKey();
  137.   int vcc=LOWORD(a);
  138.   int mod=HIWORD(a);
  139.   */
  140.     CDialog::OnOK();
  141. }
  142.  
  143. void Cabout::OnSelchangelang() 
  144. {
  145.   int r;
  146.   int old_lang=LANG_T(-1);
  147.   r = m_ctl_lang.GetCurSel();
  148.   if (r!=CB_ERR) {
  149.     CString st;
  150.     m_ctl_lang.GetLBText(r,st);
  151.     int i;
  152.     int max=m_ctl_lang.GetCount();
  153.     for(i=0;i<max;i++) {
  154.       char lang_str[1024];
  155.  
  156.       QLANG_T(i);
  157.       strcpy(lang_str,"LANGUAGE_NAME");
  158.       LANG_LOAD(lang_str);    // 0 english 1 franτais..
  159.  
  160.       //LANG_T(i);    // 0 english 1 franτais..
  161.       if (strcmp(st,lang_str)==0) {
  162.         LANG_T(i);
  163.         setlang();
  164.         if (i != old_lang)
  165.           AfxMessageBox("Please restart WinHTTrack so that your language preferences can be updated!");
  166.         return;
  167.       }
  168.     }
  169.     /* error */
  170.     LANG_T(0);    // 0 english 1 franτais..
  171.   }
  172.   setlang();
  173. }
  174.  
  175. // Appel aide
  176. BOOL Cabout::OnHelpInfo2() {
  177.   return OnHelpInfo(NULL);
  178. }
  179.  
  180. BOOL Cabout::OnHelpInfo(HELPINFO* dummy) 
  181. {
  182.   //return CDialog::OnHelpInfo(pHelpInfo);
  183.   HtsHelper->Help();
  184.   return true;
  185.   //AfxGetApp()->WinHelp(0,HELP_FINDER);    // Index du fichier Hlp
  186.   //return true;
  187. }
  188.  
  189.  
  190.  
  191.  
  192.  
  193. // ------------------------------------------------------------
  194. // TOOL TIPS
  195. //
  196. // ajouter dans le .cpp:
  197. // remplacer les deux Wid1:: par le nom de la classe::
  198. // dans la message map, ajouter
  199. // ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
  200. // dans initdialog ajouter
  201. // EnableToolTips(true);     // TOOL TIPS
  202. //
  203. // ajouter dans le .h:
  204. // char* GetTip(int id);
  205. // et en generated message map
  206. // afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
  207. BOOL Cabout::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
  208. {
  209.   TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
  210.   UINT nID =pNMHDR->idFrom;
  211.   if (pTTT->uFlags & TTF_IDISHWND)
  212.   {
  213.     // idFrom is actually the HWND of the tool
  214.     nID = ::GetDlgCtrlID((HWND)nID);
  215.     if(nID)
  216.     {
  217.       char* st=GetTip(nID);
  218.       if (st != "") {
  219.         pTTT->lpszText = st;
  220.         pTTT->hinst = AfxGetResourceHandle();
  221.         return(TRUE);
  222.       }
  223.     }
  224.   }
  225.   return(FALSE);
  226. }
  227. char* Cabout::GetTip(int ID)
  228. {
  229.   switch(ID) {
  230.     case IDC_lang:   return LANG_U1; break;
  231.     case IDC_abouticon: return LANG_K3 ; break;
  232.     case IDCANCEL:   return LANG(LANG_TIPCANCEL); break;
  233.     case IDOK:       return LANG(LANG_TIPOK); break;
  234.   }
  235.   return "";
  236. }
  237. // TOOL TIPS
  238. // ------------------------------------------------------------
  239.  
  240. void Cabout::OnLButtonDown(UINT nFlags, CPoint point) 
  241. {
  242.   int id=0;
  243.   CWnd* w=ChildWindowFromPoint(point);
  244.   if (w)
  245.     id=w->GetDlgCtrlID();
  246.  
  247.   // Select
  248.   switch(id) {
  249.     case 0: break;
  250.     case IDC_SPLASH:
  251.       this->ClientToScreen(&point);
  252.       w->ScreenToClient(&point);
  253.     if ((point.y>=100) && (point.y<=110) || (point.y<=80)) {
  254.       if (!ShellExecute(NULL,"open","http://www.httrack.com","","",SW_RESTORE)) {
  255.       }
  256.     }
  257.     /*else if ((point.y>=120) && (point.y<=140)) {
  258.       if (!ShellExecute(NULL,"open","http://www.serianet.com","","",SW_RESTORE)) {
  259.       }
  260.     }
  261.     */
  262.     break;
  263.   }
  264.  
  265.   CDialog::OnLButtonDown(nFlags, point);
  266. }
  267.  
  268. void Cabout::OnMouseMove(UINT nFlags, CPoint point) 
  269. {
  270.   int id=0;
  271.   CWnd* w=ChildWindowFromPoint(point);
  272.   if (w)
  273.     id=w->GetDlgCtrlID();
  274.  
  275.   // Select
  276.   switch(id) {
  277.   case 0: break;
  278.   case IDC_SPLASH:
  279.     this->ClientToScreen(&point);
  280.     w->ScreenToClient(&point);
  281.     HCURSOR curs=NULL;
  282.     if (
  283.          (point.y>=120) && (point.y<=140)
  284.       || (point.y<=80)
  285.       || (point.y>=100) && (point.y<=110)
  286.       ) {
  287.       curs=AfxGetApp()->LoadCursor(IDC_CURSWWW);
  288.     } else {
  289.       curs=AfxGetApp()->LoadStandardCursor(IDC_ARROW);
  290.     }
  291.     if (curs) {
  292.       //if (curs != currentCurs) {
  293.         SetCursor(curs);
  294.         // currentCurs=curs;
  295.       //}
  296.     }
  297.   }  
  298.  
  299.     CDialog::OnMouseMove(nFlags, point);
  300. }
  301.